
import Vue from "vue";
import store from "@/store";


// 指令名 v-authority

// 使用方式
// v-authority="['superAdmin']"  
// v-authority="['superAdmin',"admin"]"  
// v-authority:disabled="['superAdmin',"admin"]"    //只有超级管理员和普通管理员可以访问,如果不是就禁用
// v-authority:remove="['superAdmin',"admin"]"    //只有超级管理员和普通管理员可以访问,如果不是就删除

Vue.directive("authority",function(el,binding){  // inserted / updated
    console.log("el",el);
    console.log("binding",binding);

    let {value,arg="disabled"} = binding;

    // 获取用户权限等级  => Vuex
    let {role} = store.state.userInfo;  // [1,2,3];
    let roleList = ["superAdmin","admin","guest"];
    let roleInfo = roleList[role-1];

    // value.includes(roleInfo)  => 用户角色是权限列表中的
    if(!value.includes(roleInfo)){ // 不是该权限可以访问的   => 禁用/删除
        switch(arg){
            case "disabled":
                el.disabled = true;
                el.classList.add("is-disabled");
                break;
            case "remove":
                // el.remove(); // 直接删不行 
                
                // 页面挂载完毕之后再删
                Vue.nextTick(()=>{
                    el.remove(); 
                })
                
                break;
        }
    }
    



})